package com.zelix;

public class ob extends Exception
    implements xe
{

    protected boolean a;
    public sg b;
    public int c[][];
    public String d[];
    protected String e;
    private static String z[];

    public ob()
    {
        e = System.getProperty(z[0], "\n");
        a = false;
    }

    public ob(sg sg1, int ai[][], String as[])
    {
        super("");
        e = System.getProperty(z[0], "\n");
        a = true;
        b = sg1;
        c = ai;
        d = as;
    }

    protected String a(String s)
    {
        StringBuffer stringbuffer;
        int i;
        int j;
        j = bf.d;
        stringbuffer = new StringBuffer();
        i = 0;
//        if(j == 0) goto _L2; else goto _L1
//_L1:
        for(i = 0; i<s.length();i++) {
        switch(s.charAt(i))
        {
        case 0: // '\0'
            continue;

        case 8: // '\b'
            stringbuffer.append(z[13]);
//            if(j == 0)
//                continue;
            // fall through

        case 9: // '\t'
            stringbuffer.append(z[12]);
//            if(j == 0)
//                continue;
            // fall through

        case 10: // '\n'
            stringbuffer.append(z[17]);
//            if(j == 0)
//                continue;
            // fall through

        case 12: // '\f'
            stringbuffer.append(z[15]);
//            if(j == 0)
//                continue;
            // fall through

        case 13: // '\r'
            stringbuffer.append(z[11]);
//            if(j == 0)
//                continue;
            // fall through

        case 34: // '"'
            stringbuffer.append("\"");
//            if(j == 0)
//                continue;
            // fall through

        case 39: // '\''
            stringbuffer.append("'");
//            if(j == 0)
//                continue;
            // fall through

        case 92: // '\\'
            stringbuffer.append(z[14]);
//            if(j == 0)
//                continue;
            // fall through

        default:
            char c1;
            if((c1 = s.charAt(i)) < ' ' || c1 > '~')
            {
                String s1 = z[16] + Integer.toString(c1, 16);
                stringbuffer.append(z[10] + s1.substring(s1.length() - 4, s1.length()));
                if(j == 0)
                    continue;
            }
            stringbuffer.append(c1);
            i++;
            break;
        }
    }
            return stringbuffer.toString();
    }

    public String getMessage()
    {
        String s;
        int i;
        int j;
        int i1;
        i1 = bf.d;
        if(!a)
            return super.getMessage();
        s = "";
        i = 0;
        j = 0;
        for(j = 0;j<c.length;j++){
            int k;
            if(i < c[j].length){
                i = c[j].length;
            }
            for(k = 0;k < c[j].length;k++){
                s = s + d[c[j][k]] + " ";
            }
            if(c[j][c[j].length - 1] != 0)
            s = s + z[4];
        s = s + e + z[2];
        }

        String s1;
        sg sg1;
        String s2;
        int l;
        s1 = b.f;
        sg1 = b.g;
        s2 = z[7];
        l = 0;
        for(l = 0;l<i;l++){
            if(l != 0)
            s2 = s2 + " ";
        if(sg1.a == 0)
        {
            s2 = s2 + d[0];
            if(i1 == 0)
                break; /* Loop/switch isn't completed */
        }
        s2 = s2 + a(sg1.f);
        sg1 = sg1.g;
        }

label0:
        {
            s2 = s2 + z[3] + e + (s1 == null || s1.length() <= 0 ? "" : z[1] + s1 + "\"" + e) + z[8] + b.g.b + z[9] + b.g.c + "." + e;
            if(c.length == 1)
            {
                s2 = s2 + z[6] + e + z[2];
                if(i1 == 0)
                    break label0;
            }
            s2 = s2 + z[5] + e + z[2];
        }
        s2 = s2 + s;
        return s2;
    }

    private static String z(char[] chs) {
        for (int i = 0; i < chs.length; i++) {
            byte key = 0;
            switch (i % 5) {
                case 0:
                    key = 0x56;
                    break;
                case 1:
                    key = 119;
                    break;
                case 2:
                    key = 33;
                    break;
                case 3:
                    key = 37;
                    break;
                default:
                    key = 75;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static 
    {
        String as[];
        as = new String[18];
        as[0] = ":\036O@e%\022QD97\003NW";
        as[1] = "_\026GQ.$W\003";
        as[2] = "vW\001\005";
        as[3] = "tW";
        as[4] = "xY\017";
        as[5] = "\001\026R\005..\007DF??\031F\005$8\022\001J-l";
        as[6] = "\001\026R\005..\007DF??\031F\037";
        as[7] = "\f\022ML3v<MD8%:@V?3\005\001@%5\030TK?3\005DAkt";
        as[8] = "_\026U\005'?\031D\005";
        as[9] = "zWBJ'#\032O\005";
        as[10] = "\n\002";
        as[11] = "\n\005";
        as[12] = "\n\003";
        as[13] = "\n\025";
        as[14] = "\n+";
        as[15] = "\n\021";
        as[16] = "fG\021\025";
        as[17] = "\n\031";
        for (int i = 0; i < as.length; i++) {
            as[i] = z(as[i].toCharArray());
        }
        z = as;

    }
}